package com.itfenghuang.day17;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;

public class A03_Response extends HttpServlet {
    /*
    1.通过字节流响应浏览器
        getOutputstream()
    2.通过字符流响应流浪器
        getWriter()
    3.响应中文乱码问题
        resp.setContentType("text/html;charset=utf-8");
    4.可以响应出去一个标签
    5.不能够同时响应字节流和字符流
    6.项目真实的发布路径
        D:\idea_workspace\class_31\out\artifacts\JAVAEE_war_exploded
    7.响应一张图片出去
        1.找到图片
        2.读到程序中
        3.响应出去
     */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        post请求中文乱码问题
                req.setCharacterEncoding("utf-8");
//                响应中文乱码问题
//        resp.setContentType("text/html;charset=utf-8");
//        通过字节流响应浏览器
//           ServletOutputStream os = resp.getOutputStream();
//           os.write("cao".getBytes());
//        通过字符流响应数据
//        PrintWriter pw = resp.getWriter();
//        pw.write("y y y y y y y y y y y y y y y y y y y y y yy y<br/>");
//        pw.write("胸大不给看,奶水少一半");

//        获取指定文件的真实发布路径
        String realPath = getServletContext().getRealPath("img/1.jpg");
//        相对路径
        FileInputStream fis = new FileInputStream(realPath);
//        获取响应字节流
        ServletOutputStream os = resp.getOutputStream();
//        循环读写
        byte[] bs = new byte[1024];
        int i;
        while ((i=fis.read(bs))!=-1){
            os.write(bs,0,i);
        }

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }

}
